#version 330

// 输入从顶点着色器来
in vec2 fragTexCoord;
in vec4 fragColor;

// 输入纹理
uniform sampler2D texture0;
uniform vec4 colDiffuse;

// 统一变量
uniform vec2 textureSize;  // 纹理尺寸
uniform float pixelSize;   // 像素大小

// 输出颜色
out vec4 finalColor;

void main()
{
    // 计算像素化坐标
    vec2 pixelCoord = fragTexCoord * textureSize;
    pixelCoord = floor(pixelCoord / pixelSize) * pixelSize;
    pixelCoord = pixelCoord / textureSize;
    
    // 采样纹理
    vec4 texelColor = texture(texture0, pixelCoord);
    
    // 最终颜色
    finalColor = texelColor * colDiffuse * fragColor;
}